/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package moteur.partie;

import moteur.carte.Ville;
import moteur.paquet.*;

/**
 *
 * @author Administrateur
 */
public interface Jouer {
    //TODO: passer quand il n'y a plus à jouer, ou quand le joeur quitte.
    /**
     * Fait piocher le joeur.
     */
    public void pioche();
    /**
     * Intime au joeur de se défausser.
     */
    public void defausse();
    /**
     *
     * @return
     */
    public String getNom();
    /**
     *
     * @return
     */
    public int getScore();

    /**
     * Intime au joeur de choisir un pion parmis le choix en parametre.
     * @param choix
     */
    public void choisiPion(PionsEnMain choix);
    /**
     * Intime au joeur de se déplacer.
     */
    public void deplacer();
    /**
     * Intime au joeur de placer un pion.
     */
    public void placePion(); //obstrue => cas particulier de place pion?
    /**
     * Fait passer le tour.
     */
    public void passe();
    /**
     *
     * @return
     */
    public boolean aPasse();
    /**
     *
     */
    public void naPasPasse();
    /**
     *
     * @return
     */
    public Ville getLocalisation();

    /**
     * 
     */
    public void updatePartie();

    /**
     *
     */
    public class EventJeu{
        Jouer fromJoeur;

        /**
         *
         * @param fromJoeur
         */
        public EventJeu(Jouer fromJoeur) {
            this.fromJoeur = fromJoeur;
        }

    }
}
